#[derive(Debug, Clone, Copy, PartialEq, Eq, derive_more::Display)]
#[repr(i32)]
pub enum EdbError {
    InternalServerError = 0x_01_00_00_00,
    UnsupportedFeatureError = 0x_02_00_00_00,
    ProtocolError = 0x_03_00_00_00,
    BinaryProtocolError = 0x_03_01_00_00,
    UnsupportedProtocolVersionError = 0x_03_01_00_01,
    TypeSpecNotFoundError = 0x_03_01_00_02,
    UnexpectedMessageError = 0x_03_01_00_03,
    InputDataError = 0x_03_02_00_00,
    ParameterTypeMismatchError = 0x_03_02_01_00,
    StateMismatchError = 0x_03_02_02_00,
    ResultCardinalityMismatchError = 0x_03_03_00_00,
    CapabilityError = 0x_03_04_00_00,
    UnsupportedCapabilityError = 0x_03_04_01_00,
    DisabledCapabilityError = 0x_03_04_02_00,
    QueryError = 0x_04_00_00_00,
    InvalidSyntaxError = 0x_04_01_00_00,
    EdgeQLSyntaxError = 0x_04_01_01_00,
    SchemaSyntaxError = 0x_04_01_02_00,
    GraphQLSyntaxError = 0x_04_01_03_00,
    InvalidTypeError = 0x_04_02_00_00,
    InvalidTargetError = 0x_04_02_01_00,
    InvalidLinkTargetError = 0x_04_02_01_01,
    InvalidPropertyTargetError = 0x_04_02_01_02,
    InvalidReferenceError = 0x_04_03_00_00,
    UnknownModuleError = 0x_04_03_00_01,
    UnknownLinkError = 0x_04_03_00_02,
    UnknownPropertyError = 0x_04_03_00_03,
    UnknownUserError = 0x_04_03_00_04,
    UnknownDatabaseError = 0x_04_03_00_05,
    UnknownParameterError = 0x_04_03_00_06,
    SchemaError = 0x_04_04_00_00,
    SchemaDefinitionError = 0x_04_05_00_00,
    InvalidDefinitionError = 0x_04_05_01_00,
    InvalidModuleDefinitionError = 0x_04_05_01_01,
    InvalidLinkDefinitionError = 0x_04_05_01_02,
    InvalidPropertyDefinitionError = 0x_04_05_01_03,
    InvalidUserDefinitionError = 0x_04_05_01_04,
    InvalidDatabaseDefinitionError = 0x_04_05_01_05,
    InvalidOperatorDefinitionError = 0x_04_05_01_06,
    InvalidAliasDefinitionError = 0x_04_05_01_07,
    InvalidFunctionDefinitionError = 0x_04_05_01_08,
    InvalidConstraintDefinitionError = 0x_04_05_01_09,
    InvalidCastDefinitionError = 0x_04_05_01_0A,
    DuplicateDefinitionError = 0x_04_05_02_00,
    DuplicateModuleDefinitionError = 0x_04_05_02_01,
    DuplicateLinkDefinitionError = 0x_04_05_02_02,
    DuplicatePropertyDefinitionError = 0x_04_05_02_03,
    DuplicateUserDefinitionError = 0x_04_05_02_04,
    DuplicateDatabaseDefinitionError = 0x_04_05_02_05,
    DuplicateOperatorDefinitionError = 0x_04_05_02_06,
    DuplicateViewDefinitionError = 0x_04_05_02_07,
    DuplicateFunctionDefinitionError = 0x_04_05_02_08,
    DuplicateConstraintDefinitionError = 0x_04_05_02_09,
    DuplicateCastDefinitionError = 0x_04_05_02_0A,
    DuplicateMigrationError = 0x_04_05_02_0B,
    SessionTimeoutError = 0x_04_06_00_00,
    IdleSessionTimeoutError = 0x_04_06_01_00,
    QueryTimeoutError = 0x_04_06_02_00,
    TransactionTimeoutError = 0x_04_06_0A_00,
    IdleTransactionTimeoutError = 0x_04_06_0A_01,
    ExecutionError = 0x_05_00_00_00,
    InvalidValueError = 0x_05_01_00_00,
    DivisionByZeroError = 0x_05_01_00_01,
    NumericOutOfRangeError = 0x_05_01_00_02,
    AccessPolicyError = 0x_05_01_00_03,
    QueryAssertionError = 0x_05_01_00_04,
    IntegrityError = 0x_05_02_00_00,
    ConstraintViolationError = 0x_05_02_00_01,
    CardinalityViolationError = 0x_05_02_00_02,
    MissingRequiredError = 0x_05_02_00_03,
    TransactionError = 0x_05_03_00_00,
    TransactionConflictError = 0x_05_03_01_00,
    TransactionSerializationError = 0x_05_03_01_01,
    TransactionDeadlockError = 0x_05_03_01_02,
    WatchError = 0x_05_04_00_00,
    ConfigurationError = 0x_06_00_00_00,
    AccessError = 0x_07_00_00_00,
    AuthenticationError = 0x_07_01_00_00,
    AvailabilityError = 0x_08_00_00_00,
    BackendUnavailableError = 0x_08_00_00_01,
    ServerOfflineError = 0x_08_00_00_02,
    UnknownTenantError = 0x_08_00_00_03,
    ServerBlockedError = 0x_08_00_00_04,
    BackendError = 0x_09_00_00_00,
    UnsupportedBackendFeatureError = 0x_09_00_01_00,
    LogMessage = 0x_F0_00_00_00_u32 as i32,
    WarningMessage = 0x_F0_01_00_00_u32 as i32,
    ClientError = 0x_FF_00_00_00_u32 as i32,
    ClientConnectionError = 0x_FF_01_00_00_u32 as i32,
    ClientConnectionFailedError = 0x_FF_01_01_00_u32 as i32,
    ClientConnectionFailedTemporarilyError = 0x_FF_01_01_01_u32 as i32,
    ClientConnectionTimeoutError = 0x_FF_01_02_00_u32 as i32,
    ClientConnectionClosedError = 0x_FF_01_03_00_u32 as i32,
    InterfaceError = 0x_FF_02_00_00_u32 as i32,
    QueryArgumentError = 0x_FF_02_01_00_u32 as i32,
    MissingArgumentError = 0x_FF_02_01_01_u32 as i32,
    UnknownArgumentError = 0x_FF_02_01_02_u32 as i32,
    InvalidArgumentError = 0x_FF_02_01_03_u32 as i32,
    NoDataError = 0x_FF_03_00_00_u32 as i32,
    InternalClientError = 0x_FF_04_00_00_u32 as i32,
}

impl std::error::Error for EdbError {}
